"""演示页面/资源访问控制路由

包含：公开页面、需要登录的页面、需要特定权限的页面
"""

from fastapi import APIRouter, Depends

from app.core.auth import get_current_active_user, require_scopes
from app.module.users.model import User


router = APIRouter(prefix="/pages", tags=["pages"])


@router.get("/public")
def public_page() -> dict:
    """公开页面，任何人都可访问"""
    return {"message": "这是公开页面，任何人都可以访问"}


@router.get("/profile")
def profile_page(current_user: User = Depends(get_current_active_user)) -> dict:
    """个人中心页面，要求用户已登录且未被禁用"""
    return {"message": "个人中心页面", "username": current_user.username}


@router.get("/admin")
def admin_page(
    _: list[str] = Depends(require_scopes(["admin:read"])),
) -> dict:
    """管理员页面，需要具备 admin:read 权限"""
    return {"message": "管理员页面，已验证 admin:read 权限"}


@router.post("/admin/actions")
def admin_action(
    _: list[str] = Depends(require_scopes(["admin:write"])),
) -> dict:
    """管理员写操作，需要具备 admin:write 权限"""
    return {"message": "管理员写操作已允许"}


